import pymysql
connect = pymysql.connect(
    host='127.0.0.1',
    db='study',
    user='root',
    password='mysql',
    port=3306,
    charset='utf8', )
# 创建游标
cur = connect.cursor()


# 索引： 索引是对数据库表中一列或多列的值进行排序的一种结构，使用索引可快速访问数据库表中的特定信息。
# mysql索引有：普通索引，复合索引，唯一索引，主键索引，全文索引

# 普通索引：index 最基本的索引，没有任何限制
print('创建普通索引')
sql_index = 'create index index_name on man(name)'
cur.execute(sql_index)
print('删除普通索引')
sql_dlindex = 'drop index index_name on man'
cur.execute(sql_dlindex)

# 复合索引： 在多个字段上建立的索引，遵守最左前缀:查询条件中第一个索引字段被使用
print('创建复合索引')
sql_mindex = 'create index index_name on man(name, money);'
cur.execute(sql_mindex)

# 唯一索引：限制该列的值必须唯一，但允许存在空值(一个null)  多个字段创建唯一索引规定列值的组合必须唯一
print('创建唯一索引')
sql_unique = 'create unique index index_name on man(name,money)'
# 一般在创建表的时候创建唯一索引
sql = """
create table user(
    id int primary key,
    title varchar(255) not null,
    author varchar(255) not null,
    unique index_name(title,author)
)
"""
cur.execute(sql)

# 主键索引： 特殊的唯一索引：只能有一个，不允许为null
print('创建主键索引')
sql = 'alter table man add primary key (id)'


# 全文索引：fulltext 查找文本中的关键字  char、varchar，text 列上可以创建全文索引
print('全文索引')
sql = """
CREATE TABLE news (
    `id` int(11) NOT NULL AUTO_INCREMENT ,
    `title` varchar(255)  NOT NULL ,
    `content` text  NOT NULL ,
    `time` varchar(20) NULL DEFAULT NULL ,
     PRIMARY KEY (`id`),
     FULLTEXT (content)
)"""


